Bar codes, which comprise both one-dimensional and two-dimensional codes, have become popular for encoding data. However, because these, codes were designed to be machine-readable by a bar code scanner, they are generally visually unattractive. The most common representations appear as jumbled collections of dark and light regions, or “cells”.
A bar code that is machine-readable but visually appealing could be advantageous. However, realizing this by defining a new bar code format might require significant time and resources to gain significant adoption. One could avoid the problems of adoption if one could instead produce a hybrid: a visually appealing image that can also be recognized by an existing bar code scanning device as a valid code. However, there are challenges with producing such a hybrid image.
For example, any approach that blindly destroys part of the code and replaces it with visually appealing data, intending to rely on redundancy or error correction built into the code, can alter only a fraction of the code before the code becomes unscannable. Furthermore, any such approach makes the code less robust against routine scanning errors.
As another example of the challenge, any approach that simply alters the shape or size of bar code cells is quite limited in the kinds of effects it can achieve. It would not be possible to visually represent arbitrary images with a high amount of fidelity using such an approach.
As a third example of the difficulty, any approach that applies a uniform image compositing operation between a decorative image and an image of a bar code is unlikely to achieve satisfactory results. Within each cell, the resulting composite image can either be machine readable but at the expense of human recognition (i.e., the entire cell is quite dark or light), or it can be human recognizable but at the expense of machine readability (i.e., a bar code scanner cannot easily decide whether to interpret the cell as a light or dark region), but not both.